// 日期

// 创建日期对象
let date = new Date();
console.log(date);

// 注意：JavaScript 从 0 到 11 计算月份
// 如果只提供一个参数，则将其视为毫秒
// 一位和两位数年份将被解释为 19xx 年
// 零时间是 1970 年 1 月 1 日 00:00:00 UTC
// 在 HTML 中显示日期对象时，会使用 toString() 方法自动转换为字符串
let date1 = new Date(2018, 11, 24, 10, 33, 30, 0);
console.log(date1);

// toUTCString() 方法将日期转换为 UTC 字符串
let date2 = new Date();
console.log(date2.toUTCString());

// toDateString() 方法将日期转换为更易读的格式
let date3 = new Date();
console.log(date3.toDateString());

let date4 = new Date("2018-02-19T12:00:00");
console.log(date4);

// 日期获取的相关方法 (比设置会常用一些)
// getDate()	以数值返回天（1-31）
console.log(date.getDate());
// getDay()	以数值获取周名（0-6）
console.log(date.getDay());
// getFullYear()	获取四位的年（yyyy）
console.log(date.getFullYear());
// getHours()	获取小时（0-23）
console.log(date.getHours());
// getMilliseconds()	获取毫秒（0-999）
console.log(date.getMilliseconds());
// getMinutes()	获取分（0-59）
console.log(date.getMinutes());
// getMonth()	获取月（0-11）
console.log(date.getMonth());
// getSeconds()	获取秒（0-59）
console.log(date.getSeconds());
// getTime()	获取时间（从 1970 年 1 月 1 日至今）
console.log(date.getTime());

// UTC 日期方法 见文档

// 日期设置的相关方法
// setDate()	以数值（1-31）设置日
date.setDate(10);
console.log(date.getDate());
// setFullYear()	设置年（可选月和日）
date.setFullYear(2026, 1, 1);
console.log(date.getFullYear());
console.log(date.getMonth());
console.log(date.getDate());
// setHours()	设置小时（0-23）
// setMilliseconds()	设置毫秒（0-999）
// setMinutes()	设置分（0-59）
// setMonth()	设置月（0-11）
// setSeconds()	设置秒（0-59）
// setTime()	设置时间（从 1970 年 1 月 1 日至今的毫秒数）

// 日期可以进行比较
let date5 = new Date();
let date6 = new Date();
date6.setFullYear(2026, 1, 2);
console.log(date5 > date6);

// 数学

console.log(Math.PI);

// Math.round(x) 的返回值是 x 四舍五入为最接近的整数
console.log(Math.round(2.3)); // 2
console.log(Math.round(2.5)); // 3

// Math.pow(x, y) 的返回值是 x 的 y 次幂
console.log(Math.pow(2, 8));

// Math.sqrt(x) 返回 x 的平方根
console.log(Math.sqrt(8));

// Math.abs(x) 返回 x 的绝对（正）值
console.log(Math.abs(-4.7)); 

// Math.ceil(x) 的返回值是 x 上舍入最接近的整数
console.log(Math.ceil(-4.7)); // -4

// Math.floor(x) 的返回值是 x 下舍入最接近的整数 
console.log(Math.floor(-4.7)); // -5

// Math.min() 和 Math.max() 可用于查找参数列表中的最低或最高值
console.log(Math.min(-4.7, 2));
console.log(Math.max(-4.7, 2));

// Math.random() 返回介于 0（包括） 与 1（不包括） 之间的随机数
console.log(Math.random());



// 随机
// Math.random() 与 Math.floor() 一起使用用于返回随机整数
console.log(Math.floor(Math.random() * 10));		// 返回 0 至 9 之间的数


// 当我们使用同一个业务逻辑代码时出现2遍或者3遍，适当的封装成一个函数 
// 封装成函数的核心就是找到变化
function getRndInteger(min, max) {
    return Math.floor(Math.random() * (max - min) ) + min;
}

console.log(getRndInteger(10, 20));























